// 假如Student为一个类，Student a = 4为构造函数，a = 4为赋值（有=运算符重载，没有的话会执行a = Student(4)然后使用=的copy structure），Student a = b为调用copy structure
// 使用私有继承表达存储数据
// 多重继承有可能继承同样的属性，发生冲突
// 类模板
template <typename Type,int n> class Stack{       // 表达式参数可以是整数，枚举，引用或者指针，不能为double（可以是double的引用或者指针）
private:
    Type items[n];
    int top;
public:
    Stack();
    bool isEmpty();
    bool isFull();
    bool push(const Type& item);
    bool pop(Type& item);
};
template <typename Type,int n> Stack<Type,n>::Stack(){
    top = 0;
}

template <typename Type,int n> bool Stack<Type,n>::isEmpty(){
    return top == 0;
}
typedef Stack<char,10> stk10_char;    //方便使用
// ....